#ifndef __APP_POOL_H__
#define __APP_POOL_H__

typedef struct
{
    int (*task_fun)(void *arg);      // 任务函数
    void *arg;                    // 任务函数参数
} Task;

/**
 * @brief 初始化线程池
 * 1. 创建消息队列
 * 2. 创建多个分线程
 * @param size 线程池线程数量
 * @return int 0: 成功 -1: 失败
 */
int app_pool_init(int size);

/**
 * @brief 线程池销毁
 * 1. 销毁消息队列
 * 2. 销毁所有线程
 * @return int 0: 成功 -1: 失败
 */
int app_pool_destroy(void);

/**
 * @brief 线程池添加任务
 * 将任务添加到消息队列
 * @param task_fun 任务函数
 * @param arg 任务函数参数
 * @return int 0: 成功 -1: 失败
 */
int app_pool_addTask(int (*task_fun)(void *arg), void *arg);



#endif /* __APP_POOL_H__ */